In over-sampled digital
to analog conversion, we are improving the performance of a cheap interpolator like a zero order hold at the price of simply an increase in the
interpolation frequency. The reason why we want to do
this is because it's very expensive to design a high-performance
analog interpolator, whereas it's very very cheap
to do some preprocessing in the digital domain before
using a cheap interpolator. Consider the standard
sinc interpolation where we use an
ideal interpolator. We know that the
Fourier transform of the output signal is given by
this formula where here we have the DTFT of the discrete time sequence which would be two Pi periodic in the discrete time domain
and Fs periodic in the continuous time
domain once we have chosen an interpolation
interval Ts. The role of the sinc
interpolator is to select only one repetition of the
spectrum the base band component that is between minus Fs over two
and Fs over two. So we start with the generic
spectrum in discrete time, and what we would get
in continuous time once we choose a time-based Ts is this periodic spectrum and the sinc interpolator would just select the baseband component. This is what happens in theory. In practice of
course, you won't be able to use a sinc interpolator. We will use some other form of Kernel-based
local interpolation. In that case the spectrum of the interpolated
signal will be like so we will have the DTFT once again re-scale so that the minus Pi interval is mapped to the minus
Fs over two to Fs over two interval and
this periodic spectrum in the continuous time domain
will be multiplied by the Fourier transform of
the interpolation kernel. The most common and the cheapest interpolation kernel is the zero order hold which corresponds from the electronic
point of view to keeping the signal constant between
interpolation intervals. The zero order hold
can be represented in the time domain by a
rect function that is selecting the
interpolation interval which in frequency
becomes a sinc. We have seen this in
the previous modules. So if we start from the DTFT of the
discrete-time sequence, the result in
interpolation signal will be the spectrum re-scaled over the analog frequency axis multiplied by the
frequency response of the interpolator which is a sinc whose first zero is at Fs. Because of this, we will have
two problems: a distortion in-band and the presence of spurious frequency
components out of band. At this point, we are
in the analog domain. So if we want to ameliorate
or correct the situation, we would need to design an analog filter with the
following frequency response, something that kills
all frequencies above Fs over two and that
between minus Fs over two and Fs over two has a characteristic that
compensates for the distortion introduced by the zero order hold now to design a
filter like this in the analog domain is extremely difficult and
even if it was possible, this would be a very expensive
filter to implement. A smarter approach
is to use the power of discreet-time
processing and do all the heavy lifting in the discrete time
domain so that we can use a cheap interpolator. If you started from a
situation where you had your discreet time
sequence and then interpolator at a
certain frequency Fs to get your
continuous time signal. Now what we're going
to do is start with the same discrete-time
sequence perform an up-sampling in the
discrete time domain. So we ups-ample the signal and then we low-pass
filter it with a cutoff frequency of Pi over N. Then we use a
cheap interpolator. But this chip
interpolator will work at a frequency that is n times
the original frequency. The claim is that the signal
here is much closer to what a sinc interpolation of the discrete time sequence
Xn would have provided. So we are using standard
multi-rate techniques. We start from our
sequence we insert and minus one zeros
between each sample and then we filter with a digital filter in responding to remark
that the filter is digital because that's the
crux of the matter that provides a discrete-time
interpolation that usually follows an up-sampler. Now, we can actually
be smarter than that and this low-pass
filter that selects the baseband repetition of the up-sampled spectrum
will perform two functions. It will select that repetition
but also compensate for the in-band
distortion that will be introduced by the
zero order hold later. So we can decompose our filter as the product of a
wracked that selects the minus Pi over n to Pi over N interval in the discrete
time spectrum and another filter c of e to j Omega that compensates the distortion
of the zero order hold. Graphically, suppose this is the original discrete
time spectrum of our sequence and we up-sample
it by a factor of two, that brings two copies
of the spectrum in the minus Pi Pi interval
and then we apply our low-pass filter to select this portion of the spectrum. This low-pass filter
also compensates for the distortion that will be introduced by the
zero order hold. So after digital
filtering we get this. Now this operation is performed in the
discrete time domain. In the discrete time
domain we can design arbitrarily complex
filters without the extra cost of
an analog design. That's really what
makes this method so widespread in consumer
electronics today. Now let's take the up-sampled and filtered sequence
and interpolated to the continuous time domain with the zero order hold that works at a sampling frequency
that is n times the original sampling frequency
that we would have used. The spectrum of the interpolated
analog sequence is this. So you have the formula
we've seen before with the only difference that
the sampling frequency now is N times Fs. We now write the DTFT of the up-sample
sequence in terms of the DTFT of the original sequence and we have this expression here, x of e to the j Omega
times capital N, the contraction of the frequency
axis by a factor of n, times the frequency
response of the filter. Then we continue and
replace the expression for the filter by the two components
that make up the filter. The standard discrete
time interpolator that we use in
up-sampling and we can approximate that with an ideal characteristic
because we are in discrete time and we can make it as good as we need it to be. Then there's a
second component is c of e to the j Omega that compensates in advance
the distortion that will be introduced
by the zero order hold. Now all this spectra
are computed in Omega equal to two Pi times f over F0 where F0 is the new sampling frequency and time the original
sampling frequency. So let's now replace
these values inside the spectra and we have
discrete time spectrum re-scaled like so then we
have the frequency response of the discrete time interpolator brought
into continuous time. Then we have the
compensation filter again brought into discrete
time and then we have the frequency response
of the zero order hold. Notice that now this
will be a sinc. But the first zero of
the sinc will happen at F0 which is equal to n times Fs. So it will be a wider sinc. In the end between minus Fs over two and Fs over
two we can show that the spectrum will be equal
to x of f where x of f is the spectrum of the
sequence when it's interpolated with a sinc at Fs. So this derivation is a bit complicated but graphically
it makes a lot of sense. So let's start with our
up-sampled spectrum. So we're up-sampling by two here. Then we filter with our filter that does two
things at the same time. It does digital interpolation
that we always use in up-sampling and it pre compensates for the delay
of the zero order hold. Now we interpolate the sequence with a sampling
frequency which is 2 times the original
sampling frequency because we have chosen an
up-sampling factor of two. Now first of all, notice that
we have created some gaps here in the digital
spectrum and this gaps will be reflected in the continuous
time spectrum once we map the minus Pi Pi interval to F0 over two to minus F0 minus 2. Secondly, note that since f
zero is capital N times Fs, between minus Fs over
two and Fs over two, we have exactly the spectrum that we would have
obtained if we had to use a sinc interpolator
at a frequency Fs on the original
digital sequence. Thirdly, note that because now F0 is larger it's N times Fs, the first zero of the sinc, the frequency response of the
zero order hold will take place at F0 which is much further from the
origin than before. So in the end we have a continuous time spectrum
that looks like so. Because of the pre
compensation that we performed in the
discrete time domain, we don't have any distortion
in the base band and the first spurious
frequency repetition will take place at F0
which is N times Fs. With a large gap, usually n is much larger
than two in reality. So with a large gap between the base band and the first
part that we have to remove. At this point, we can use a very cheap analog
filter such as a Butterworth for instance to remove the unwanted
frequency components. This filter will be
cheaper because it's transition band
can be very large. So the key points of
oversampled analog to digital conversions are
the fact that we can pre-compensate for the
distortion in-band introduced by the cheap interpolator and therefore we can use
a cheap interpolator. Then if we use a high
enough over sampling, the analog filter that
we need to remove the unwanted high-frequency
component will be very simple and
therefore very cheap. The only price that we have to pay is a slight increase in the sampling rate and a more complicated
digital processing. But again, digital
processing is cheap. So virtually all consumer
electronic products that produce audio, will use an oversample
analog to digital converter